#ifndef COMPARATOR_H
#define COMPARATOR_H

namespace Library
{

template<class O>
class Comparator
{
	public:
						Comparator();
		virtual			~Comparator();

		virtual int32	compare(O left, O right) = 0;

		virtual bool8	equals(O left, O right) = 0;

	// prohibited
	private:
		Comparator(Comparator &);
		Comparator & operator=(Comparator &);
};


template<class O>
Comparator<O>::Comparator()
{
}

template<class O>
Comparator<O>::~Comparator()
{
}

}; // namespace Library

#endif
